import os
from dotenv import load_dotenv

# 加载环境变量
load_dotenv()

# 数据库配置
MYSQL_CONFIG = {
    'host': os.getenv('MYSQL_HOST', 'localhost'),
    'port': int(os.getenv('MYSQL_PORT', 3306)),
    'user': os.getenv('MYSQL_USER', 'root'),
    'password': os.getenv('MYSQL_PASSWORD', '123456'),
    'db': os.getenv('MYSQL_DATABASE', 'edu_system'),
    'charset': 'utf8mb4'
}

# Redis配置
REDIS_CONFIG = {
    'host': os.getenv('REDIS_HOST', 'localhost'),
    'port': int(os.getenv('REDIS_PORT', 6379)),
    'db': int(os.getenv('REDIS_DB', 0)),
    'password': os.getenv('REDIS_PASSWORD', None),
    'decode_responses': True
}

# Kafka配置
KAFKA_CONFIG = {
    'bootstrap_servers': os.getenv('KAFKA_SERVERS', 'localhost:9092'),
    'user_behavior_topic': os.getenv('KAFKA_USER_BEHAVIOR_TOPIC', 'user_behavior'),
    'group_id': os.getenv('KAFKA_GROUP_ID', 'recommendation_engine')
}

# 推荐系统配置
RECOMMENDATION_CONFIG = {
    # 混合推荐权重
    'cf_weight': 0.7,  # 协同过滤权重
    'content_weight': 0.3,  # 内容推荐权重
    
    # 协同过滤配置
    'similar_items_count': 20,  # 最相似课程数量
    'recommendation_count': 10,  # 推荐课程数量
    
    # 模型更新配置
    'model_update_time': '01:00',  # 模型更新时间(每天凌晨1点)
    
    # Apriori算法参数
    'min_support': 0.01,  # 最小支持度
    'min_confidence': 0.5,  # 最小置信度
    
    # 热度计算权重
    'view_weight': 0.3,    # 浏览权重
    'purchase_weight': 0.5,  # 购买权重
    'favorite_weight': 0.2,  # 收藏权重
} 